home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / sound / rescale113 / rescale.readme < prev    next >
Text File  |  1999-06-14  |  9KB  |  211 lines

  1. Short:    Anti-alias resampling v1.13 BUGFIX!
  2. Uploader: Björn Östberg <JetRacer@Hem.Passagen.se>
  3. Author:   Björn Östberg <JetRacer@Hem.Passagen.se>
  4. Type:     mus/edit
  5. Version:  1.13  99-05-31
  6. Replaces: mus/edit/rescale111.lha
  7.  
  8. Commercial use without the permission of the author is strictly forbidden!
  9.  
  10. ---------------------------------------------------------------------------
  11. Disclaimer: The programmer can't be held responsible for ANY damages caused
  12. by this software - use it at your own risc!
  13.  
  14. No fee whatsoever can be charged for the archive nor it's contense -not even
  15. for distrubution expences (Aminet have exclusive right to distribute this
  16. archive and charge whatever fee they seem suitable). This archive must be
  17. distributed in it's original shape without any modifications.
  18. ---------------------------------------------------------------------------
  19.  
  20. Rescale Version 1.13   Copyright ©1999 Björn Ösberg
  21.  
  22. Usage: Rescale <SourceFile> <DestFile> SourceRate DestRate ReplayRate
  23.  
  24.        If no replayrate is desired -enter sourcerate twice instead:
  25.  
  26.    Or: Rescale <SourceFile> <DestFile> SourceRate DestRate SourceRate
  27.  
  28.  
  29.        Programming: Björn Östberg (JetRacer@Hem.Passagen.se)
  30. Additional Code By: Fredrik Rambris (Fredrik.Rambris@Amiga.nu)
  31.  
  32.     Visit our site: www.Amiga.nu
  33.  
  34. Rescale v1.13 68020 and 68020/68882 versions are included in this archive.
  35.  
  36. Installation:
  37.  
  38. Copy the version of the executable you prefer (68000 68020 68020FPU 68040)
  39. to the directory where you want it ( "C:" is recommended) Rename the
  40. executable to just "Rescale" for your own convinience. Copy the readme to
  41. the directory where you store program documentations (ie. "Docs:" or
  42. whatever). Done!
  43.  
  44. Description:
  45.  
  46. Rescale is a resample utility (SHELL only) which resamples standard 8SVX raw
  47. sounds. The resample method used in the Rescale utility is vector based
  48. scaling -similar to the one used in sizeable fonts but Rescale have
  49. antialias output.
  50.  
  51. Running Rescale without any statements or faulty syntax will make it type
  52. out some instructions aswell as copyright and version info. There are no
  53. restrictions for the rates values so be carefull(!). A nice side-effect of
  54. the previus is that you can specify the relation between source/dest/replay
  55. in any way you like (but remember that you CANNOT mix different relative
  56. values f.ex. samplerates and periods). Examples:
  57.  
  58. Downsample rate 16726(C-3) to rate 33452(C-4) with a 44.1KHz replay rate
  59. Rescale <SourceFile> <DestFile> 16726 33452 44100
  60.  
  61. Downsample period 127 to period 254 -no replay rate
  62. Rescale <SourceFile> <DestFile> 127 254 127
  63.  
  64. Rescale Wavelength 320 to Wavelength 256 -no replay rate
  65. Rescale <SourceFile> <DestFile> 320 256 320
  66.  
  67. Etc.
  68.  
  69. Rescale can actually be used to rescale any signed 8-bit raw datafile at
  70. all. -Usefull for programmers who wants to rescale sinus tables or whatever
  71. with very high quality. Rescaling from a 256 samples original will produce
  72. a 100% result.
  73.  
  74. In practic
  75. ¯¯¯¯¯¯¯¯¯¯
  76. -That sounds nice but what does it all mean?
  77.  
  78. Well, f.ex. that you can resample to nearby frequencies without any
  79. hearable quality loss (unlike the majority of trackers and editors). F.ex.
  80. resampling a note D-3 instrument to a note C-3 instr. produces no noise.
  81. You can also downsample with insane rates as 1:4 or below without jitter
  82. (with reservations for the 8-bit format itself) and without the need for
  83. filters thanks to the anti-alias.
  84.  
  85. Quality loss
  86. ¯¯¯¯¯¯¯¯¯¯¯¯
  87. If you have resampled chords in protracker (or whatever) you know that it
  88. sound crappy. What most people don't know is why:
  89.  
  90. With probably no exceptions - the sample editors/converters and composer
  91. programs of today all use the classic integer-based skip/duplicate or
  92. skip/mix 50%/50% resample methods. These routines create serius aliasing
  93. errors which result in a very poor soundquality.
  94.  
  95. Or in laymans terms: it produces transient noise and static tuning errors.
  96.  
  97. About the programmer
  98. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  99. I (Björn Östberg) created the Rescale utility as an exersize learning
  100. ANSI-C. Have no fear -An experienced programmer and friend of mine (Fredrik
  101. Rambris) had a peek at the source before I released it and he had no
  102. objections whatsoever. He also helped me out with the AmigaOS filehandling
  103. (since the ANSI-C filehandling sucks!) and memory allocation using Exec. The
  104. rescaling rutine is small enough to be rather harmless so that rules out
  105. most error sources. I also have extencive experience with the programming
  106. language Basic aswell so I'm no real freshman programmer.
  107.  
  108. In the near future (before Y2K):
  109.  
  110. ·Proper syntax without the demand for a defigned replayrate.
  111.  
  112. ·IFF 8SVX support
  113. ·AIFF support
  114. ·AIFF-C support
  115. ·Wav/RIFF support
  116.  
  117. ·Multichannel support
  118. ·8/16/24/32-bit support
  119.  
  120. ·Boopsi GUI
  121.  
  122.  
  123. History:
  124.  
  125. v1.13 99-05-31 (Current) I put Rescale under the microscope and discovered a
  126.    serius bug! The StormC compiler ROUNDS OFF floats to integers! That
  127.    produced some transient noise that shouldn't have been there. Fixed the
  128.    bug anyway. Now things are as smooth as they where supposed to be =)
  129.  
  130.    Included optimized versions for a number of processors (Hi Claude!).
  131.  
  132.    I also fixed the bad progress display to show both progress aswell as
  133.    the final size (in bytes). The cursor seems to have it's own life though
  134.    and I suspect that I should have included a pause or something for it to
  135.    settle (darn annoying), but I don't know how to do that just yet (or just
  136.    turn it off for that matter).
  137.  
  138. v1.12 99-05-17 Never released (Hi StarFox!). Discovered an embarrising lack
  139.    of error messages if the infile didn't exist or there wasn't enough
  140.    memory to allocate processing buffers. Now Rescale blames the user for it
  141.    by printing a lame standard error message =)
  142.  
  143.    BIGBUG(!) in the README file; the readme stated that it was okay to mix
  144.    different kinds of values f.ex:
  145.    'Rescale Infile Outfile 1 2 44100' WARNING: DO NOT TRY THIS!!!
  146.    It's NOT okay to mix a relative 1:2 ratio with a samplerate value!
  147.    The above syntax will multipy the length of the original sample by 88200
  148.    times... Not funny if you are working on a machine capable of allocating
  149.    that amount of memory (VMem or a 040/060 board)!
  150.  
  151. v1.11 99-05-05 First release. Small bugfix: Minor UI errors...
  152.    Major Aminet upload problems due to lack of initiative =)
  153.  
  154. v1.1 99-04-09 Bugfix: Fixed a defect statement
  155.    causing the help text to be typed no matter if the user syntax was
  156.    correct or not. Fixed minor bugs; some spell errors, etc. Wrote ReadMe
  157.    files, compressed AmiNet LHA Archive, and such. The utility was created
  158.    and converted within six days.
  159.  
  160. v1.0ß 99-04-08   Added the help text to the main.
  161.  
  162. v0.9 99-04-08   Completed Basic convertion. Got some help with AmigaOS
  163.    filehandling & arguments parsing, aswell as memory allocation using Exec.
  164.  
  165. v0.8 99-04-07   Did most of the convertion to ANSI-C, compiles just fine
  166.    -the C version doesn't do anything usefull yet though.
  167.  
  168. v0.7 99-04-05   Re-arranged the scaling routine written in Basic to a
  169.    procedure, added requesters and simple error handling.
  170.  
  171. v0.6 99-04-03   Wrote a scaling routine in Basic within 10 minutes. Was in a
  172.    state of shock the rest of the day since the routine worked at the first
  173.    try (almost) and only produced a guru once ;-)
  174.  
  175. For those of you with CD-R:
  176.  
  177. I'm working on an ultra qualitative tracker-to-sample rendering program
  178. -using this very scaling routine and some other cool stuff. Much can be done
  179. to improve the quality of the protracker replay, but even more if you are
  180. working without a realtime demand. Floatingpoint volume slide with continous
  181. updating, antialias vibrato, etc. I'm a reverb nut so I think I'll just
  182. throw in some of that too. My reverb routine handles 4-256 channels highly
  183. qualitative reverb. Natually I will support AIFF, AIFF-C, WAV & RAW signed/
  184. unsigned 8/16/24/32-bit - aswell as a stereo surround audiomodes (with
  185. advanced reverb). Note: This one is still vaporware.
  186.  
  187. For musicians and nirds:
  188.  
  189. Ontop of the previus I'm co-working on a sample editor/creator/sampler/
  190. mixer/ etc. program called Soundfactory(t). REAL cool stuff. Advanced
  191. synthetics, advanced reverb, digital equalizer, advanced professional
  192. editing tools, professional multichannel editing and mixing, direct HDD edit
  193. with disk cache, HDD recording using AHI, a full tracker composer, all
  194. within a single program. Really advanced programming style: main executable
  195. is hosting external gui and function modules. Fault tolerant design, etc.
  196. Fredrik Rambris (Fredrik.Rambris@Amiga.nu) is coding the hosting skeleton
  197. executable and as soon as he have set the final standard for the gui &
  198. function modules I can start creating some of the function & gui modules.
  199. Because of this modular design we can add anything we like to the skeleton
  200. without even touching it ever again -even advanced stuff like a tracker
  201. composer. By separating the GUI from the functions we can also support
  202. multiple GUI systems easily and use universal processing functions.
  203. On what platform? AmigaOS!
  204. When? Our goal is before Y2K, but we will probably break that deadline.
  205. This one is NOT vaporware - development in progress...
  206.  
  207. Greets to: Boost, Executor, StarFox, Claude Heiland-Allen.
  208.  
  209. Björn Östberg <JetRacer@Hem.Passagen.se>
  210. SpEEd Productions Site: http://www.Amiga.nu  -Soundfactory Development News
  211.